A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Routing devices within a network, often referred to as routers, maintain routing information that describe available routes through the network. Upon receiving an incoming packet, the router examines information within the packet and forwards the packet in accordance with the routing information. In order to maintain an accurate representation of the network, routers exchange routing information in accordance with one or more defined routing protocol, such as an interior gateway protocol (IGP). An interior gateway protocol may be a distance-vector protocol or a link state protocol. With a typical link state routing protocol, the routers exchange information related to available interfaces, metrics and other variables associated with links between network devices. This allows the routers to each construct a complete topology or map of the network. Some examples of link state protocols include the Open Shortest Path First (OSPF) protocol and the Intermediate-System to Intermediate System (IS-IS) protocol.
When there is a change in network topology either due to a link failure or due to a new link addition, network devices in the network determine an updated view of the network and re-compute routes. For instance, if a link failure occurs, network devices directly coupled to the failed link may notify other network devices in the network of the link failure. Due to network latency and network device configuration time, there may be a small time window when the forwarding state of each of the network devices is not synchronized. As a result, transient loops (or “micro-loops”) may occur in the network where a particular network device, which has not yet converged to an updated network topology, sends traffic to a next-hop network device that has already converged to the updated network topology. As a result, the next-hop device may forward the traffic back to the particular network device, thus creating a micro-loop that results in traffic looping between the two network devices.